package com.yunji.cabinet.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunji.cabinet.domain.ContainerCell;
import com.yunji.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class CabinetDTO {

    @Excel(name = "主键ID")
    @ApiModelProperty(value = "货柜ID")
    private Long containerId;

    @ApiModelProperty(value = "货柜名称", required = true)
    @Excel(name = "货柜名称")
    private String containerName;

    @ApiModelProperty(value = "芯片SN")
    @Excel(name = "芯片SN")
    private String chipSn;

    @ApiModelProperty(value = "芯片IMEI", required = true)
    private String chipImei;

    @ApiModelProperty(value = "二维码Code")
    @Excel(name = "二维码Code")
    private String qrCode;

    @ApiModelProperty("货柜在线状态 (0=离线,1=在线)")
    @Excel(name = "货柜激活状态", readConverterExp = "0=离线,1=在线")
    private Integer onlineStatus;

    @ApiModelProperty("货柜在线时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String onlineTime;

    @ApiModelProperty("货柜离线时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String offlineTime;


    @ApiModelProperty("货柜使用状态 (0-启用:1-停用:2-未绑定)")
    @Excel(name = "货柜使用状态", readConverterExp = "0-启用:1-停用:2-未绑定")
    private Integer useStatus;

    @ApiModelProperty("货柜激活时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String useTime;

    @ApiModelProperty("货柜类型ID")
    private String typeCode;

    @ApiModelProperty("货柜类型名称")
    @Excel(name = "货柜类型名称")
    private String typeName;

    @ApiModelProperty("货柜储物格数")
    @Excel(name = "货柜储物格数")
    private Integer nums;

    @ApiModelProperty("模板ID")
    private Long templateId;

    @ApiModelProperty("模板名称")
    private String templateName;

    @ApiModelProperty("所属ID")
    private Long belongId;

    @ApiModelProperty("代理ID")
    private Long agentId;

    @ApiModelProperty("代理名称")
    @Excel(name = "代理名称")
    private String agentName;

    @ApiModelProperty("绑定的员工ID")
    private Long staffId;

    @ApiModelProperty("绑定的员工名称")
    @Excel(name = "绑定的员工名称")
    private String staffName;

    @ApiModelProperty("绑定时间")
    @Excel(name = "绑定时间")
    private Date bindTime;

    @ApiModelProperty("省份名称")
    @Excel(name = "省份名称", width = 15)
    private String provinceName;

    @ApiModelProperty("省份代码")
    private String provinceCode;

    @ApiModelProperty("城市名称")
    @Excel(name = "城市名称", width = 15)
    private String cityName;

    @ApiModelProperty("城市代码")
    private String cityCode;

    @ApiModelProperty("区县名称")
    @Excel(name = "区县名称", width = 15)
    private String countyName;

    @ApiModelProperty("区县代码")
    private String countyCode;

    @ApiModelProperty("货柜地址")
    @Excel(name = "货柜地址")
    private String region;

    @ApiModelProperty("货柜详细地址")
    @Excel(name = "货柜详细地址")
    private String address;

    @ApiModelProperty("删除状态 (0-未删除 1-已删除)")
    @Excel(name = "删除状态", readConverterExp = "0-未删除 1-已删除")
    private Integer delFlag;

    @ApiModelProperty("网点ID")
    private Long siteId;

    @ApiModelProperty("网点名称")
    @Excel(name = "网点名称")
    private String siteName;

    /*-------------------------------------------------------------------------------查询信息---------------------------------------------------------------------------------------*/
    //员工电话
    @ApiModelProperty("员工电话")
    private String staffTel;

    // 销售金额
    @ApiModelProperty("销售金额")
    private BigDecimal totalAmount;
    // 销售次数
    @ApiModelProperty("销售次数")
    private Integer totalCount;

    private List<ContainerCell> cells;

    private Long[] typeIds;

}
